package com.zh.flowable.domain;

/**
 * 审批单的状态枚举值
 * @author
 * @date 2025/9/1
 */
public enum AuditStatus {
    /**
     * 待审批
     */
    UN_REVIEWED(0),
    /**
     * 审批中
     */
    IN_REVIEW(1),
    /**
     * 审批通过
     */
    APPROVED(2),
    /**
     * 审批被驳回（可重新提交）
     */
    REVERTED(3),
    /**
     * 审批不通过（不可重新提交）
     */
    DISAPPROVED(4),

    /**
     * 审批已取消
     */
    CANCELED(5),
    ;

    private final int code;

    AuditStatus(int code) {
        this.code = code;
    }

    public int getCode() {
        return code;
    }

    public static AuditStatus fromCode(int code) {
        for (AuditStatus status : values()) {
            if (status.getCode() == code) {
                return status;
            }
        }
        throw new IllegalArgumentException("Invalid AuditStatus code: " + code);
    }
}
